package cn.catsdad.base.web;

import cn.catsdad.constant.iConstant.IResponseStatus;
import cn.catsdad.exception.BaseException;
import org.springframework.web.bind.annotation.ExceptionHandler;

/**
 * 全局异常拦截
 *
 * @author xuyl
 * @version 1.0 2024/7/14
 */
public class GlobalExceptionHandler {

    /**
     * 通用异常处理
     *
     * @param exception 通用异常
     * @return 通用返回结果
     */
    @ExceptionHandler({BaseException.class})
    public HttpResponse<Object> commonExceptionHandle(BaseException exception) {
        exception.printStackTrace();
        return new HttpResponse<>()
                .setMsg(exception.getMessage())
                .setStatus(exception.getStatus())
                .setSuccess(false);
    }

    /**
     * 全局异常处理
     *
     * @param e 异常
     * @return 通用返回结果
     */
    @ExceptionHandler({Exception.class})
    public HttpResponse<Object> exceptionHandle(Exception e) {
        e.printStackTrace();
        return new HttpResponse<>()
                .setMsg(e.getMessage())
                .setStatus(IResponseStatus.ERROR).setSuccess(false);
    }

}
